<?php
/**
 * @brief Klasa encyjna NetworkNode
 * 
 * Obiekty tej klasy reprezentują lokalizacje znajdujące się w sieci dystrybucji 
 * towarów. 
 */
class Application_Model_NetworkNode
{
    protected $_NetworkNode_id;  /*!< Identtyfiaktor lokalizacji. */
    protected $_Network_id;  /*!< Identtyfiaktor sieci */
    protected $_name; /*!< Nazwa lokalizacji.*/

    /**
     * @brief Konstruktor 
     * 
     * Przyjmuje tablicę znaków i na jej podstawie uzupełnia pola,
     * przy pomocy setOptions.
     * @param array $options 
     */
    public function __construct(array $options = null) {
        if (is_array($options)) {
            $this->setOptions($options);
        }
    }

   /**
     * @brief Metoda uzupełniająca pola na podstawie wejściowej tablicy.
     * 
     * @param array $options
     * @return Obiekt tej klasy.
     */
    public function setOptions(array $options) {

        $methods = get_class_methods($this);

        foreach ($options as $key => $value) {

            $method = 'set' . ucfirst($key);

            if (in_array($method, $methods)) {

                $this->$method($value);
            }
        }
        return $this;
    }
    
    /**
     * @brief Metoda zwracająca identyfiaktor lokalizacji.
     *
     * @return int 
     */
    public function getNetworkNode_id() {
        return $this->_NetworkNode_id;
    }
    
    /**
     * @brief Metoda ustawiająca identyfiaktor lokalizacji.
     *
     * @param int $_NetworkNode_id 
     */
    public function setNetworkNode_id($_NetworkNode_id) {
        $this->_NetworkNode_id = $_NetworkNode_id;
    }
    
    /**
     * @brief Metoda zwracająca identyfikator sieci.
     *
     * @return 1 bo jest jedna sieć
     */
    public function getNetwork_id() {
        return $this->_Network_id;
    }
    
    /**
     * @brief Metoda ustawiająca identyfikator sieci.
     *
     * @param int $_Network_id 
     */
    public function setNetwork_id($_Network_id) {
        $this->_Network_id = $_Network_id;
    }
    
    /**
     * @brief Metoda zwracająca nazwę lokalizacji.
     *
     * @return string 
     */
    public function getName() {
        return $this->_name;
    }
    
    /**
     * @brief Metoda ustawiająca nazwę lokalizacji.
     *
     * @param string $_name 
     */
    public function setName($_name) {
        $this->_name = $_name;
    }




}

